package com.punch.course.service;

import com.punch.common.page.PageInfo;
import com.punch.common.vo.course.SignInClassVO;
import com.punch.common.vo.course.SignInStudentVO;

import java.util.List;

public interface SignInService {

    /**
     * 查找当前登录教师的需要上课的课程列表
     *
     * @return PageInfo
     */
    List<SignInClassVO> listClassCourse();

    /**
     * 获取课程下学生列表
     *
     * @param classId     学生id
     * @param studentName
     * @param schoolId
     * @param currPage
     * @param pageSize
     * @return List<SignInStudentVO>
     */
    PageInfo<SignInStudentVO> listCourseStudent(Long classId, String studentName, Long schoolId, Integer currPage, Integer pageSize);

    /**
     * 修改学生课表签到状态
     *
     * @param courseScheduleId 签到id
     * @param signInStatus     签到状态 0-还原初始状态(清空) 1-已到 2-请假
     * @return long
     */
    Long changeSignInStatus(Long courseScheduleId, Integer signInStatus);

    /**
     * 统计签到人数
     *
     * @param classId 班级课程id
     * @return Integer
     */
    Integer getSignInCount(Long classId);
}
